package cn.mw.cmdb.trigger.service;

import cn.mw.cmdb.entity.ModelInfoFilterPropertyId;
import cn.mw.cmdb.trigger.*;
import cn.mw.components.mongodb.entity.SearchParam;
import cn.mw.components.mongodb.page.MWPage;
import cn.mw.microMonitorCommon.entity.alertDto.PageData;
import cn.mw.microMonitorCommon.entity.notify.NotifyLogVO;

import java.util.List;
import java.util.Map;

public interface MwCmdbTriggerService {
    MwCmdbNotifyParam saveNotify(MwCmdbNotifyParam param) throws Exception;

    MwCmdbNotifyDelParam deleteNotify(MwCmdbNotifyDelParam param) throws Exception;

    MwCmdbNotifyParam selectNotify(MwCmdbNotifyParam param) throws Exception;

    MWPage listNotify(SearchParam param) throws Exception;

    MwCmdbNotifyDropdown listDropdown() throws Exception;

    Map listFieldDropdown(MwNofityScope scope) throws Exception;

    ModelInfoFilterPropertyId getModelInfoFilterPropertyId();

    //根据范围数据(模型,分组,实例),查询相关提醒
    List<MwNotifyByScopeView> listNotifyByScope(MwNotifyScopeSearchParam searchParam) throws Exception;

    PageData<NotifyLogVO> listNotifyLog(SearchParam param);

    Integer deleteNotifyLog(MwCmdbNotifyLogDelParam param);

}
